logo

The best IT Trainig Institute In Gurgaon

DataProvider in TestNG | Data Driven Testing

In TestNG, the @DataProvider annotation is used to provide a way to supply multiple sets of data to a single test method. This is useful when you want to run the same test method with different data inputs.

@DataProvider
  • You can define a method that returns an array of data, which will be fed into a test method.
  • The @DataProvider method can return either a two-dimensional array of Object, Iterator< Object[ ]>, or Object [ ][ ].
  • Each row of data will be passed as parameters to the test method during execution.

Syntax

  • Define a method with @DataProvider that returns the test data.
  • Use the dataProvider attribute in the @Test annotation to link the test method to the data provider.

Test Code

package asc;

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

public class DataProviderTest {

	@Test(dataProvider="dataset")
	public void test(String username, String password) {
		System.out.println(username+"============"+password);
	}

	@Test(dataProvider="dataset1")
	public void test1(String username, String password, String test)
	{
		System.out.println(username+"===="+password+"===="+test);
	}
	
	
	
	@DataProvider
	public Object[][]  dataset1(){
		return new Object[][] {
			{"username","password","test"},
			{"username1","password1","test1"},
			{"username2","password2","test2"},
			{"username3","password3","test3"}
		};
	}
	
  @DataProvider
  public Object[][] dataset() {
	  Object[][] dataset = new Object[4][2];
	  //first row
	  dataset[0][0]="user1";
	  dataset[0][1]="pass1";
	  
	  //second row
	  dataset[1][0]="user2";
	  dataset[1][1]="pass2";
	  
	  //third row
	  dataset[2][0]="user3";
	  dataset[2][1]="pass3";
	  
	  //fourth row
	  dataset[3][0]="user4";
	  dataset[3][1]="pass4";
	  return dataset;
  }
}
            

Run this Code